//回调地狱
// setTimeout(() => {
//     console.log('延时1秒');
//     setTimeout(() => {
//         console.log('延时2秒');
//         setTimeout(() => {
//             console.log('延时3秒');
//         }, 3000)
//     }, 2000)
// }, 1000)

// / promise是一个构造函数 专门用来处理异步  即回调函数的嵌套 必须等上一个函数执行完了采取执行下一个
// Promise.prototype上包含一个.then方法
// then方法用来预先指定 promise 函数 是否 成功和失败的函数（ 成功的函数， 失败的函数（ 可省了））
const p = new Promise((reslove, rejcet) => {
  // 异步代码
  console.log("我先执行完了");
  // reslove(55) //代表函数执行完了;
  rejcet(55);
});

p.then(
  function (val) {
    console.log(val, "resolve");
  },
  function (err) {
    console.log(err, "error");
  }
).catch((error) => {
  {
    console.log(error, "cach");
  }
});

console.log(p);

// import thenfile from 'then-fs';
// // promise是一个构造函数
// // Promise.prototype上包含一个.then方法
// //     .then方法用来预先指定 promise 函数 是否 成功和失败的函数（ 成功的函数， 失败的函数（ 可省了））

// // 读取文件顺序 不一致 会扰乱
// // thenfile.readFile('./测试文件/1.txt', 'utf-8').then(r1 => { console.log(r1) });
// // thenfile.readFile('./测试文件/2.txt', 'utf-8').then(r2 => { console.log(r2) });
// // thenfile.readFile('./测试文件/3.txt', 'utf-8').then(r3 => { console.log(r3) });

// //推荐 会按 顺序读取
// //catch 捕获错误
// thenfile.readFile('./测试文件/11.txt', 'utf8')
//     .catch(err => { //捕获错误文件
//         console.log(err.message);
//     })
//     .then(r1 => {
//         console.log(r1);
//         return thenfile.readFile('./测试文件/2.txt', 'utf8')
//     })
//     .then(r2 => {
//         console.log(r2);
//         return thenfile.readFile('./测试文件/3.txt', 'utf8')
//     })
//     .then(r3 => {
//         console.log(r3);
//     })

// //将错误提前 不妨碍后面语句的正常输出
// // .catch((error) => {
// //     console.log(error.message); //输出错误
// // })
